package edzest.basic;

public class J13_Q77_Books_OOP {

	public static void main(String[] args) {
		// 도서 관리 시스템 (OOP)
		J13_Book book = new J13_Book(12345, "누구나 알기쉬운", "혜지원", "타케시", 
				"스릴러", "22500", false, "2014-06-10");
		
		J13_Book[] books = new J13_Book[5];
		// 대여한 책을 저장하기 위한 배열 선언
		books[0] = book; // 대여한 책을 배열에 저장
		J13_Member member = new J13_Member
				(98765, "수지", "123-456-789", books, 12345);
	
		// 도서정보 출력
		System.out.println( book.toString() );
	} // main

} // class

class J13_Book {
	// 도서 관련
	// 클래스라는 카트에 변수들을 담음
	// 이 필드는 그대로 오라클 테이블로 들어감
	// PK키는 NUM이라 bookNo를 int로 지정
	// 오라클서 영문 한자 1바이트, 한글 한자 3바이트
	// 다른 DB는 한글 한자 2바이트인데 오라클만 유별남
	private int bookno;
	private String bookName;
	private String publisher;
	private String author;
	private String genre;
	private String price;
	private boolean isRent;
	private String regdate;	
	
	public J13_Book( int bookno, String bookName,
			String publisher, String author, 
			String genre, String price, 
			boolean isRent, String regdate) {
		this.bookno = bookno;
		this.bookName = bookName;
		this.publisher = publisher;
		this.author = author;
		this.genre = genre;
		this.price = price;
		this.isRent = isRent;
		this.regdate = regdate;
	}
	
	@Override
	public String toString() {
		String bookInfo = "도서명 : " + bookName;
		bookInfo += "출판사 : " + publisher;
		return bookInfo;
	}
}

class J13_Member {
	private int memberNo;
	private String name;
	private String telNo;
	/*private J13_Book rBook1;
	private J13_Book rBook2;
	private J13_Book rBook3;
	private J13_Book rBook4;
	private J13_Book rBook5;*/
	private J13_Book[] rbooks;
	private int mileage;
	
	public J13_Member( int memberNo, String name, String telNo,
			J13_Book[] rbooks, int mileage) {
		this.memberNo = memberNo;
		this.name = name;
		this.telNo = telNo;
		this.rbooks = rbooks;
		this.mileage = mileage;
	}
}
